package com.tanhua.dubbo.server.api;


import com.tanhua.dubbo.server.enums.AuditStateType;
import com.tanhua.dubbo.server.pojo.MsgQuery;
import com.tanhua.dubbo.server.pojo.Publish;
import org.bson.types.ObjectId;

import java.util.List;
import java.util.Map;

public interface MessagesApi {


    /**
     * 消息置顶
     * @param id
     */
    String messagesTop(ObjectId id);

    /**
     * 消息取消置顶
     * @param id
     */
    String messagesUntop(ObjectId id);

    /**
     * 消息翻页
     * @param page
     * @param pagesize
     * @param msgQuery
     * @return
     */
    List<Publish> pagePublishMessages(Integer page, Integer pagesize, MsgQuery msgQuery);

    /**
     * 修改审核状态
     * @param ids
     * @param artificiaPass
     * @return
     */
    String updateState(String[] ids, AuditStateType artificiaPass);

    /**
     * 消息通过
     * @param ids
     * @return
     */
    String messagesPass(String[] ids);

    /**
     * 消息拒绝
     * @param ids
     * @return
     */
    String messagesReject(String[] ids);

    /**
     * 消息撤回
     * @param ids
     * @return
     */
     String revocation(String[] ids);

    /**
     * 记录数
     * @return
     */
    Long queryCount(Integer page, Integer pagesize,MsgQuery msgQuery);

    /**
     * 获取不同状态的所有数量
     * @return
     */
    Long queryStateCount(String state,MsgQuery msgQuery);

    /**
     * 消息详情
     * @param id
     * @return
     */
    Publish queryComment(String id);


    /**
     * 更新点赞数
     * @param publishId
     * @param likeCount
     */
    void updateLikeCount(String publishId, Long likeCount);

    /**
     * 更新评论数
     * @param publishId
     * @param commentCount
     */
    void updateCommentCount(String publishId, Long commentCount);


}
